<!-- 扩展属性 -->

<template>
  <EasyRow v-bind="rowProps">
    <template v-for="item in propertyList">
      <FormInput
        v-if="item.dataTypeValue === 'input_type_text'"
        :key="item.propertyId"
        v-bind="getPropertyProps(item)"
      />

      <FormNum
        v-else-if="item.dataTypeValue === 'input_type_digit'"
        :key="item.propertyId"
        v-bind="getPropertyProps(item)"
        string
      />

      <FormDate
        v-else-if="item.dataTypeValue === 'input_type_date'"
        :key="item.propertyId"
        v-bind="getPropertyProps(item)"
        format
      />

      <FormTime
        v-else-if="item.dataTypeValue === 'input_type_time'"
        :key="item.propertyId"
        v-bind="getPropertyProps(item)"
        format
      />
    </template>
  </EasyRow>
</template>

<script>
// ============================== 导入依赖 ============================== //

import CORE from '@/CORE'
import DeviceBase from '@admin/components/detail/DetailDevice/MyDetail/DeviceBase'

// ============================== 导出组件 ============================== //

export default {
  /**
   * 名称定义 (实际使用名称)
   */
  name: 'AddProperty',

  /**
   * 混入列表 (配置选项合并)
   */
  mixins: [CORE.mixWeb()],

  /**
   * 计算属性 (慎用箭头函数)
   */
  computed: {
    /**
     * 行属性
     */
    rowProps() {
      return {
        row3: true,
      }
    },

    /**
     * 属性列表
     */
    propertyList() {
      return this.one.assetPropertyDto || []
    },
  },

  /**
   * 本地方法 (轻量重要在前)
   */
  methods: {
    /**
     * 获取动态属性的属性
     */
    getPropertyProps(item) {
      return {
        one: item,
        label: item.propertyLabel,
        bind: 'propertyValue',
        words: this.getWords(item.propertyLabel),
      }
    },

    /**
     * 获取汉字数
     */
    getWords: DeviceBase.methods.getWords,
  },
}
</script>
